package br.edu.dpaw.locavirtus;

import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

import org.slf4j.Logger;

import br.gov.frameworkdemoiselle.util.ResourceBundle;


public class LocacaoVeicular {

	private List<CategoriaVeiculo> categorias = new ArrayList<CategoriaVeiculo>();
	
	@Inject
	private ResourceBundle bundle;
	
	@Inject
	private Logger logger;	
	
	public void incluirCategoria(CategoriaVeiculo cv) {
		if(existeCategoria(cv.getNome())) {
			throw new RuntimeException();
		}
		logger.info(bundle.getString("categoria.cadastrada.suceso", cv.getNome()));
		categorias.add(cv);
	}
	public boolean existeCategoria(String nomeCategoria) {
		return categorias.contains(new CategoriaVeiculo(nomeCategoria, 0));
	}
	public CategoriaVeiculo consultarCategoria(String nomeCategoria) {
		if (!existeCategoria(nomeCategoria)) {
			throw new RuntimeException();
		}
		return categorias.get(categorias.indexOf(new CategoriaVeiculo(nomeCategoria, 0)));
	}
	
	public double calcularPrecoLocacao(String nomeCategoria, Periodo periodoLocacao) {
		CategoriaVeiculo cv = consultarCategoria(nomeCategoria);
		double vlDiaria = cv.getValorDiaria();
		long dias = periodoLocacao.diferencaDias();
		long difHoras = periodoLocacao.diferencaHoras();
		double preco = vlDiaria * dias + vlDiaria * difHoras/24;
		return preco;
	}
}
